/**
* 
* Message interne du Noyau de simulation 
* Copyright (c) 2009 Ecole Centrale de Nantes IRCCyN  
* 
* see <a href="{@docRoot}/Documentation/kernelmessage.html"> for more information</a>
* 
* @author: Urunuela Richard
* @version 3.2
*/
package storm;
/**
 * 
 * @author richard
 *
 */
public class KernelMessage implements EvtContext{
/**
 * 
 * @author richard
 *
 */
	public static  enum  value{
		ACTIVATE,
		TERMINATE,
		BLOCK,
		UNBLOCK,
		SELECT,
		PREEMPT, TICK, UNREADY
		
		
	}
/**
 * 
 */
		Entity S;
		Entity D;
		KernelMessage.value type;
		Entity param1;
		Entity param2;
		/**
		 * message S to D inform  about V1 (e.g activation task V1 from tlm to sched) 
		 * @param S
		 * @param D
		 * @param val
		 * @param V1
		 */
		public KernelMessage(Entity S, Entity D , KernelMessage.value val,Entity V1){
			this.S = S;
			this.D = D;
			this.type = val;
			this.param1 = V1;
		}
		/**
		 * message S to D i
		 * @param S
		 * @param D
		 * @param val
		 */
		public KernelMessage(Entity S, Entity D , KernelMessage.value val){
				this.S = S;
				this.D = D;
				this.type =val;
		}
		/**
		 * 
		 */
		public Entity getSource() {
			return (Entity)this.S;
		}
		/**
		 * 
		 */
		 public Entity getCible() {
			return this.D;
		}


}
